package controller;

import dao.TagListaJpaController;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import dao.exceptions.NonexistentEntityException;
import model.TagLista;
import pagecontroller.JsfUtil;

/**
 *
 * @author Edilson Fernandes da Costa
 * @version 1.0
 */
public class TagListaController {

    public TagListaController() {
        if (JsfUtil.getObjectFromSession("TagListaJpaController") == null) {
            jpaController = new TagListaJpaController();
        } else {
            jpaController = (TagListaJpaController) JsfUtil.getObjectFromSession("TagListaJpaController");
        }
    }
    private TagLista tagLista = null;
    private TagLista tagListaAux = null;
    private TagListaJpaController jpaController = null;
    private List<TagLista> tagListas = null;


   public void persiste() {
        if (tagLista.getId() == null) {
            create();
        } else {
            update();
        }
    }

    public String update() {
        try {
            jpaController.edit(this.tagLista);
            tagListaAux = tagLista;
            this.tagLista = null;
            JsfUtil.addSuccessMessage("TagLista Atualizado com Sucesso");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(TagListaController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(TagListaController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "refreshPage";
    }

    public String create() {
        try {
            jpaController.create(tagLista);
            tagListaAux = tagLista;
            tagLista = null;
            JsfUtil.addSuccessMessage("TagLista cadastrado com sucesso.");
        } catch (Exception e) {
            JsfUtil.ensureAddErrorMessage(e, "Ocorreu um erro na percistencia dos dados.");
            return null;
        }
        return "refreshPage";
    }

    public String edit() {
        TagLista tagListaTemp = (TagLista) JsfUtil.getObjectFromRequestParameter("tagLista");
        this.tagLista = tagListaTemp;
        return "refreshPage";
    }

    public String destroy() {
        TagLista tagListaTemp = (TagLista) JsfUtil.getObjectFromRequestParameter("tagLista");
        try {
            jpaController.destroy(tagListaTemp.getId());
            JsfUtil.addSuccessMessage("TagLista removido com sucesso.");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(TagListaController.class.getName()).log(Level.SEVERE, null, ex);
        }

        return "refreshPage";
    }


    public TagLista getTagLista() {
        if (tagLista == null) {
            tagLista = new TagLista();
        }
        return tagLista;
    }

    public List<TagLista> getTagListas(){
        this.tagListas = jpaController.findTagListaEntities();
        return this.tagListas;
    }

    public TagListaJpaController getJpaController() {
        return jpaController;
    }

    public TagLista getTagListaAux() {
        return tagListaAux;
    }


}
